From 9a2e064aaf934c5b45cb07b2fd242894cd826f97 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sun, 30 Aug 2020 14:26:54 -0600 Subject: [PATCH] backward compatible changes for Qt6. (#640) * backward compatible changes for Qt6. This is mostly QRegExp -> QRegularExpression. Some QRegExp usage was was replaced by QString::trimmed. There is also a QNetworkRequest redirect attribute change that is backward compatible to Qt5.9. * eliminate usage of unnecessary regular expressions. * bring serial_unix into Qt6 compliance. QSet::toList is gone, QSet::values is identical. qSort is deprecated. --- gui/aboutdlg.cc | 18 +++++++++++------- gui/aboutdlg.h | 7 ++++--- gui/formatload.cc | 47 ++++++++++++++++++++++------------------------ gui/help.cc | 16 ++++++++-------- gui/help.h | 2 +- gui/mainwindow.cc | 7 ++----- gui/serial_unix.cc | 16 ++++++++++++---- gui/upgrade.cc | 42 +++++++++++++++++++++-------------------- gui/upgrade.h | 16 ++++++++++------ 9 files changed, 92 insertions(+), 79 deletions(-) diff --git a/gui/aboutdlg.cc b/gui/aboutdlg.cc index 0ea700c51..2a4087050 100644 --- a/gui/aboutdlg.cc +++ b/gui/aboutdlg.cc @@ -21,8 +21,12 @@ // #include "aboutdlg.h" -#include "appname.h" -#include "upgrade.h" +#include // for QTextCursor +#include // for QTextDocument +#include // for QTextEdit +#include "appname.h" // for appName +#include "upgrade.h" // for UpgradeCheck + AboutDlg::AboutDlg(QWidget* parent, const QString& ver1, const QString& ver2, const QString& installationId): QDialog(parent) @@ -31,13 +35,13 @@ AboutDlg::AboutDlg(QWidget* parent, const QString& ver1, QTextDocument* doc = ui_.textEdit->document(); ui_.textEdit->setReadOnly(true); QString tt = doc->toHtml(); - tt.replace(QRegExp("\\$appname\\$"), QString(appName)); - tt.replace(QRegExp("\\$babelversion\\$"), ver1); - tt.replace(QRegExp("\\$babelfeversion\\$"), ver2); - tt.replace(QRegExp("\\$installationId\\$"), installationId); + tt.replace("$appname$", appName); + tt.replace("$babelversion$", ver1); + tt.replace("$babelfeversion$", ver2); + tt.replace("$installationId$", installationId); // Not localized as it should never be seen. - tt.replace(QRegExp("\\$upgradetestmode\\$"), + tt.replace("$upgradetestmode$", UpgradeCheck::isTestMode() ? "**Upgrade test mode**" : ""); doc->setHtml(tt); diff --git a/gui/aboutdlg.h b/gui/aboutdlg.h index 0c1635bf9..e08c71e4d 100644 --- a/gui/aboutdlg.h +++ b/gui/aboutdlg.h @@ -23,9 +23,10 @@ #ifndef ABOUTDLG_H #define ABOUTDLG_H -#include - -#include "ui_aboutui.h" +#include // for QString +#include // for QDialog +#include // for QWidget +#include "ui_aboutui.h" // for Ui_AboutDlg class AboutDlg: public QDialog { diff --git a/gui/formatload.cc b/gui/formatload.cc index 4c3cfdd06..dbd5629b6 100644 --- a/gui/formatload.cc +++ b/gui/formatload.cc @@ -21,24 +21,24 @@ // //------------------------------------------------------------------------ -#include // for QByteArray -#include // for operator==, QChar -#include // for QCharRef -#include // for QCoreApplication +#include "formatload.h" +#include // for QByteArray +#include // for operator==, QChar +#include // for QCharRef +#include // for QCoreApplication #ifdef GENERATE_CORE_STRINGS -#include +#include // for QDebug, operator<< #endif -#include // for QObject -#include // for QProcess -#include // for QRegExp -#include // for QString, operator+ -#include // for QTextStream -#include // for QVariant -#include // for QApplication -#include // for QMessageBox - -#include "formatload.h" -#include "appname.h" // for appName +#include // for QObject +#include // for QProcess +#include // for QRegularExpression +#include // for QRegularExpressionMatch +#include // for QString, operator+ +#include // for QTextStream +#include // for QVariant +#include // for QApplication +#include // for QMessageBox +#include "appname.h" // for appName //------------------------------------------------------------------------ @@ -53,8 +53,8 @@ static QString xlt(const QString& f) //------------------------------------------------------------------------ bool FormatLoad::skipToValidLine() { - QRegExp regex("^(file|serial)"); - while (currentLine_ optionList; - while (currentLine_ 0 && Format::getHtmlBase().length() == 0) { QString base = htmlPage; - base.replace(QRegExp("/[^/]+$"), "/"); + base.replace(QRegularExpression("/[^/]+$"), "/"); Format::setHtmlBase(base); } #endif @@ -162,7 +159,7 @@ bool FormatLoad::getFormats(QList& formatList) while (!tstream.atEnd()) { QString l = tstream.readLine(); k++; - if (!QRegExp("^[\\s]*$").exactMatch(l)) { + if (!l.trimmed().isEmpty()) { lines_ << l; lineList< -#include - #include "help.h" -#include "format.h" + +#include // for QRegularExpression +#include // for QString +#include // for QUrl +#include // for QDesktopServices + +#include "format.h" // for Format //------------------------------------------------------------------------ void ShowHelp(const QString& urlIn) { QString url = urlIn; - if (!url.contains(QRegExp("^http://"))) { + if (!url.contains(QRegularExpression(R"(^https?://)"))) { url = Format::getHtmlBase() + url; } QDesktopServices::openUrl(QUrl(url)); } - - - diff --git a/gui/help.h b/gui/help.h index 84690751f..5d3dae63a 100644 --- a/gui/help.h +++ b/gui/help.h @@ -22,7 +22,7 @@ #ifndef HELP_H #define HELP_H -#include +#include // for QString extern void ShowHelp(const QString& name); diff --git a/gui/mainwindow.cc b/gui/mainwindow.cc index 83560e180..931a9fcba 100644 --- a/gui/mainwindow.cc +++ b/gui/mainwindow.cc @@ -30,7 +30,6 @@ #include // for QLocale #include // for QMimeData #include // for QProcess, QProcess::NotRunning -#include // for QRegExp #include // for QSettings #include // for QString #include // for QStringList @@ -100,8 +99,6 @@ QString MainWindow::findBabelVersion() isBeta_ = str.contains("-beta"); str.replace("Version", ""); str.replace("GPSBabel", ""); - str.replace(QRegExp("^[\\s]*"), ""); - str.replace(QRegExp("[\\s]+$"), ""); str = str.simplified(); return str; } @@ -510,8 +507,8 @@ void MainWindow::outputFileNameEdited() QString MainWindow::filterForFormat(int idx) { QString str = formatList_[idx].getDescription(); - str.replace(QRegExp("\\("), "["); - str.replace(QRegExp("\\)"), "]"); + str.replace('(', '['); + str.replace(')', ']'); QStringList extensions = formatList_[idx].getExtensions(); // If we don't have any meaningful extensions available for this format, diff --git a/gui/serial_unix.cc b/gui/serial_unix.cc index 73b7f2cbb..1b5af93c6 100644 --- a/gui/serial_unix.cc +++ b/gui/serial_unix.cc @@ -21,8 +21,16 @@ #include "mainwindow.h" #ifdef HAVE_UDEV -#include -#include +#include // for udev_device_get_property_value, udev_device_get_devnode, udev_device_new_from_syspath, udev_device_unref, udev_enumerate_add_match_subsystem, udev_enumerate_get_list_entry, udev_enumerate_new, udev_enumerate_scan_devices, udev_enumerate_unref, udev_list_ent... + +#include // for QDebug +#include // for QSet +#include // for QString, operator== +#include // for QStringList +#include // for QComboBox + +#include "mainwindow.h" // for MainWindow + static QStringList dynamicDevices() { @@ -71,8 +79,8 @@ static QStringList dynamicDevices() udev_enumerate_unref(enumerate); udev_unref(udev); - QStringList list = devices.toList(); - qSort(list); + QStringList list = devices.values(); + list.sort(); return list; } #else diff --git a/gui/upgrade.cc b/gui/upgrade.cc index 4f6c2c1c8..9a6e99b7a 100644 --- a/gui/upgrade.cc +++ b/gui/upgrade.cc @@ -19,26 +19,28 @@ */ - -#include "babeldata.h" -#include "format.h" #include "upgrade.h" -#include "../gbversion.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include // for qDebug +#include // for QByteArray +#include // for QDebug +#include // for QLocale +#include // for QSysInfo +#include // for QUrl +#include // for QVariant +#include // for QVersionNumber, operator<, operator== +#include // for ISODate, RichText +#include // for QDesktopServices +#include // for QNetworkAccessManager +#include // for QNetworkReply, QNetworkReply::NoError +#include // for QNetworkRequest, QNetworkRequest::ContentTypeHeader, QNetworkRequest::HttpReasonPhraseAttribute, QNetworkRequest::HttpStatusCodeAttribute, QNetworkRequest::NoLessSafeRedirectPolicy, QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::Redi... +#include // for QMessageBox, QMessageBox::Yes, operator|, QMessageBox::No +#include // for QDomDocument +#include // for QDomElement +#include // for QDomNode +#include // for QDomNodeList +#include "../gbversion.h" // for VERSION +#include "babeldata.h" // for BabelData +#include "format.h" // for Format #if 0 @@ -117,7 +119,7 @@ UpgradeCheck::updateStatus UpgradeCheck::checkForUpgrade( // In Qt 5.6 and later, it can reissue with a redirect. With this in // place, we don't see the 301 redirect, but the server has to issue // one for the thousands of older clients out there. - request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); request.setRawHeader("Accept-Encoding","identity"); diff --git a/gui/upgrade.h b/gui/upgrade.h index ea8ff047f..a6c90a62e 100644 --- a/gui/upgrade.h +++ b/gui/upgrade.h @@ -19,13 +19,17 @@ */ -#include "babeldata.h" -#include "format.h" -#include -#include +#include // for QDateTime +#include // for QList +#include // for QObject +#include // for QString +#include // for QUrl +#include // for QNetworkAccessManager +#include // for QNetworkReply +#include // for QWidget +#include "babeldata.h" // for BabelData +#include "format.h" // for Format -class QNetworkAccessManager; -class QNetworkReply; class UpgradeCheck : public QObject { -- 2.30.2